......NORMALIZACION...


DEPARTAMENTO {(dept_no,nombre,loc)}

EMPELADO {(emp_no,apellido,oficio,dir,fecha-alt,salario,comision, dept_no)}


EJERCICIO

create database consultas;
create table departamento(dept_no int not null,dnombre nchar(20) not null,loc nchar(10) not null,
)
create table empleados(emp_no int not null,apellido varchar(20) not null,oficio varchar(20) not null,dir varchar(10) not null,fecha_alt date not null,salario money not null,comision money not null,dept_no int not null,
)
/*llaves primarias*/alter table departamento add primary key(dept_no);alter table empleados add primary key(emp_no);
/*llaves foraneas*/ alter table empleados add foreign key (dept_no) references departamento(dept_no);

insert into departamento values(10,'CONTABILIDAD','SEVILLA')
insert into departamento values(20,'INVESTIGRACION','MADRID')
insert into departamento values(30,'VENTAS','BARCELONA')
insert into departamento values(40,'PRODUCCION','BILBAO')
insert into empleados values(7369, 'SANCHEZ','EMPLEADO','7902', '1980/12/17', 104000, '', 20)
insert into empleados values(7499, 'ARROYO','VENDEDOR','7698', '1980/02/20', 208000, '39000', 30)
insert into empleados values(7521, 'SALA','VENDEDOR','7698', '1981/02/22', 162500, '162500', 30)
insert into empleados values(7566, 'JIMENEZ','DIRECTOR','7839', '1981/04/02', 386750, '', 20)
insert into empleados values(7654, 'MARTIN','VENDEDOR','7698', '1981/09/29', 162500, '182000', 30)
insert into empleados values(7698, 'NEGRO','DIRECTOR','7839', '1981/05/01', 370500, '', 30)
into empleados values(7788, 'GIL','ANALISTA','7566', '1981/11/09', 390000, '', 20)
insert into empleados values(7839, 'REY','PRESIDENTE','' , '1981/11/17', 650000, '', 10)
insert into empleados values(7844, 'TOVAR','VENDEDOR','7698', '1981/09/08', 195000, '0', 30)
insert into empleados values(7876, 'ALONSO','EMPLEADO','7788', '1981/09/23', 143000, '', 20)
insert into empleados values(7900, 'JIMENO','EMPLEADO','7698', '1981/12/03', 1235000, '', 30)
insert into empleados values(7902, 'FERNANDEZ','ANALISTA','7566', '1981/12/03', 390000, '', 20)
insert into empleados values(7934, 'MUÑOZ','EMPLEADO','7782','1982/01/23', 169000, '', 10)


/*1 Mostrar el apellido, oficio y número de departamento de cada empleado.*/
SQL = select apellido, oficio, dept_no from empleados
ALGEBRA RELACIONAL = π (apellido) y(oficio) y(dept_no) (empleado)

/*2 Mostrar el número, nombre y localización de cada departamento.*/
SQL = select dept_no, dnombre, loc from departamento
ALGEBRA RELACIONAL= π (dept_no) y(dnombre) y(loc) (departamento)

/*8 Mostrar los datos de los empleados cuyo salario sea mayor que 2000000.*/
SQL = select * from empleados where salario>2000000
ALGEBRA RELACIONAL = π(empleado) (σ (salario>2000000)(empelado))

/*16. Seleccionar de la tabla EMPLE los empleados cuyo apellido empiece por ‘A’.

SQL = select * from emple where apellido like 'A%';
ALGEBRA RELACIONAL = π(empleado) (σ (apellido 'A%')(empleado))
/*24. Datos de los empleados cuyo oficio sea ‘EMPLEADO’, tengan un salario superior a 200 y pertenezcan al departamento número 10.

SQL = select * from emp where oficio='empleado' and salario>200 and dept_no=10;

ALGEBRA RELACIONAL = π(empleado) (σ (oficio='empleado')y(salario>200)y(dept_no=10)(empleado))
/*10. Seleccionar el apellido y oficio de los empleados del departamento número 20.
SQL = select apellido, oficio from emple where dept_no=20
ALGEBRA RELACIONAL = π(apellido)y(oficio)(empl) (σ (dept_no='20')(departamento))

/*11 Mostrar todos los datos de los empleados ordenados por apellido.*/


SQL= select * from empleados order by apellido
ALGEBRA RELACIONAL= p (empleado.)(σ (empleados )(apellido))

/*17 Seleccionar de la tabla EMPLE los empleados cuyo apellido termine por Z.*/

SQL= select * from empleados where apellido like '%Z%'
ALGEBRA RELACIONAL = π(empleado) (σ (apellido 'Z%')(empleado))

/*6 Datos de los empleados ordenados por número de departamento

descendentemente y dentro de cada departamento ordenados por apellido ascendentemente.*/

SQL = select * from empleados order by dept_no desc, apellido asc

ALGEBRA RELACIONAL